El mundo actual gira en torno al almacenamiento, procesamiento y comunicación de información, y por esa razón, la criptografía es esencial para protegerla. La criptografía consiste en codificar un mensaje, es decir, transformar la información en un código que sólo puede descifrarse mediante una clave especial. Pero, ¿qué hacemos si queremos compartir una base de datos manteniendo oculta la identidad de las personas? ¿Será tan sencillo como ocultar los nombres y números de identidad de cada una? No lo es.
Hace un tiempo leí sobre un experimento bastante sencillo. En este experimento, se utilizó una base de datos “anonimizada”, es decir, sin nombres ni datos obvios, pero aun así lograron identificar a muchas personas cruzando detalles simples, como edad, género y lugar de residencia, con otras fuentes públicas. Por ejemplo, si alguien sabe que vivo en un pequeño pueblo o en cierto barrio de San José, y que además mi cumpleaños es el 29 de octubre (algo que muchas personas podrían saber por redes sociales), no importa si mi nombre no aparece en los datos, ya que esos detalles podrían ser suficientes para identificarme en esa base de datos.
Esto ocurre porque los datos aparentemente anónimos contienen lo que se conoce como información cuasi-identificadora, combinaciones de elementos como código postal, edad y género, que pueden ser únicas en ciertos contextos y permitir la identificación. Los métodos tradicionales para proteger la privacidad, como eliminar nombres o enmascarar números, no son suficientes, ya que los datos pueden ser vulnerables a ataques de reidentificación, los cuales conectan diferentes bases de datos para descubrir patrones únicos.
Hablamos incluso de la singularidad de los datos, ya que muchas combinaciones de atributos son únicas, especialmente en poblaciones pequeñas o específicas, como quienes viven en un pueblo pequeño o tienen un trabajo poco común. Para protegernos mejor, se requieren métodos más avanzados. Uno de estos métodos es codificar todos y cada uno de los datos y compartir la base de datos codificada, permitiendo que quienes la utilicen trabajen directamente sobre esos datos codificados, mientras se mantienen las propiedades aritméticas de la base de datos original. Este enfoque se conoce como encriptación homomórfica.
La encriptación homomórfica es una estrategia de codificación que permite trabajar con datos sin necesidad de desencriptarlos, manteniéndolos siempre protegidos. Imagina que guardas tus datos más importantes dentro de una caja fuerte cerrada con llave. Ahora, piensa en alguien que necesita trabajar con esos datos, pero sin abrir la caja. Con la encriptación homomórfica, es como si esa persona pudiera realizar operaciones directamente sobre la caja cerrada y, al devolverte los resultados, estos fueran exactamente los mismos que si hubiera hecho los cálculos directamente sobre los datos originales.
Digamos que están interesados en calcular el promedio de peso de las personas en su oficina, supongamos que sean unas 10 personas. Piden la información a la oficina de recursos humanos. La persona de recursos humanos, queriendo proteger los datos sensibles, decide transformarlos mediante una función matemática para que quien los solicite pueda calcular el promedio sin acceder directamente a los datos originales. Se le ocurre lo siguiente:
Es simplemente una transformación lineal de los datos. El secreto está en “key” que es la clave privada. Con esa fórmula, la persona de recursos humanos procede a encriptar cada dato,
Vean por ejemplo, como los dos últimos pesos (80), a pesar de ser el mismo, generan un dato encriptado diferente cada uno. La persona que quiere hacer el cálculo recibe los datos encriptados (número verdes en el esquema). Él no conoce ni la llave ni la fórmula de encriptación. Procede a calcular el promedio tal como si estos datos fueran los pesos reales,
Noten cómo el resultado 9116228 no significa nada en términos del promedio de peso. Este resultado se envía ahora para la oficina de recursos humanos, donde se procederá a desencriptar,
El resultado, 74 kg de peso, es el mismo que si se hubiera hecho el cálculo directamente sobre los datos originales (los invito a verificarlo ustedes mismos) y este se envía de regreso a la persona que hizo el cálculo. Este es un ejemplo muy sencillo, pero ilustra cómo este método permite que quienes reciben las bases de datos puedan realizar cualquier tipo de análisis que deseen, sin depender de que quien posee los datos lo haga por ellos. Les dejo este código de Python que preparé de este ejemplo.
Esto también significa que se pueden hacer verificaciones independientes de los datos. Por ejemplo, sería posible realizar validaciones cruzadas con resultados agregados calculados por el gobierno o, más aún, utilizar este enfoque como una forma eficaz de mantener el anonimato de los votos en un esquema de voto electrónico.
Aunque parece magia, detrás de este método hay matemáticas bastante avanzadas. En este ejemplo, por supuesto, estoy simplificando enormemente el proceso para explicarlo de manera más accesible. De todas formas, el código en Python que le dejé arriba, lo pueden utilizar en clases o modificar según sus necesidades. Además, les dejo este artículo donde explico algo similar, pero enfocado en la encriptación asimétrica: ¿Qué es la encriptación y cómo funciona? Una explicación simple pero completa.
Para aplicaciones avanzadas, se requieren transformaciones matemáticas mucho más sofisticadas, lo que hace de esta una área rica en investigación. La palabra “homomórfica” significa que existe una función de encriptación que permite construir operaciones manteniendo las propiedades de la base de datos original. Por esta razón, trabajar en este campo demanda personas con una sólida formación matemática y disposición para abordar problemas complejos.
Comentario final
Esta tecnología es especialmente prometedora en áreas como la salud, donde datos sensibles, como los historiales médicos, pueden ser analizados de forma segura sin comprometer la privacidad de los pacientes. Aunque todavía está en desarrollo y requiere un gran poder computacional, su futuro es muy prometedor en la protección de nuestra privacidad.
Otra aplicación destacada es el voto electrónico, donde, mediante este tipo de encriptación, se puede verificar con un código único que alguien votó, pero sin revelar por quién lo hizo. Ni siquiera la oficina electoral tendría acceso a esta información, ya que solo se encargaría de sumar los votos encriptados, garantizando anonimato y transparencia en el proceso.
El ejemplo presentado es extremadamente simple y no es completamente seguro, ya que lo diseñé únicamente para simplificar la explicación. Si quieren profundizar, les recomiendo explorar algoritmos de encriptación homomórfica como Paillier, RSA o ElGamal. La mayoría de estos algoritmos se basan en la dificultad de factorizar números primos muy grandes, lo que explica el temor de que las computadoras cuánticas puedan hacerlo de forma suficientemente rápida en el futuro, aunque ese es un tema aparte.
Además, estas formas de encriptación son excelentes ejercicios para la enseñanza de matemáticas, ya que involucran conceptos fascinantes de aritmética, propiedades de conjuntos de números, funciones y una buena dosis de computación.
Director Escuela de Sistemas InteligentesUniversidad CENFOTEC
[email protected]
Source
Agencia